//// 函数模板
//#include <iostream>
//using namespace std;
//
//class Integer {
//public:
//    Integer(int i) :m_i(i) {}
//    bool operator>(/*const Integer* this*/const Integer& that)const {
//        return this->m_i > that.m_i;
//    }
//private:
//    int m_i;
//};
//
//template<class T>
//T Max(T x, T y) {
//    return x > y ? x : y;
//}
//// int Max(int x, int y){ ... }
//// double Max(double x, double y){ ... }
//// string Max(string x, string y){ ... }
//// Integer Max(Integer x, Integer y){ return x > y ? x : y; }
//int main(void) {
//    Integer ix = 100, iy = 200;
//    Max<Integer>;
//
//    int nx = 10, ny = 20;
//    cout << Max<int>(nx, ny) << endl;
//    double dx = 1.23, dy = 4.56;
//    cout << Max<double>(dx, dy) << endl;
//    string sx = "world", sy = "hello";
//    cout << Max<string>(sx, sy) << endl;
//    return 0;
//}
